#ifndef CUSTOMEDITORPROPERTY_H
#define CUSTOMEDITORPROPERTY_H

#include <wx/intl.h>
#include "wxsproperty.h"

#include <prep.h>


class wxsCustomEditorProperty : public wxsProperty {
  public:


    wxsCustomEditorProperty( const wxString& PGName, const wxString& DataName, int Priority = 100 ):
      wxsProperty( PGName, DataName, Priority ) {}


    virtual bool ShowEditor( wxsPropertyContainer* Object ) = 0;


    virtual wxString GetStr( M_Code_unused wxsPropertyContainer* Object ) { return _T( "Click to edit" ); }

  protected:


    virtual bool ParseStr( M_Code_unused wxsPropertyContainer* Object,
                           M_Code_unused wxString              Value ) { return false; }


    virtual bool CanParseStr() { return false; }

  private:

    virtual void PGCreate( wxsPropertyContainer* Object, wxPropertyGridManager* Grid, wxPGId Parent );
    virtual bool PGRead( wxsPropertyContainer* Object, wxPropertyGridManager* Grid, wxPGId Id, long Index );
    virtual bool PGWrite( wxsPropertyContainer* Object, wxPropertyGridManager* Grid, wxPGId Id, long Index );
};

#endif
